50 research outputs found

    Simulación y optimización como metodología para mejorar la calidad de la predicción en un entorno de simulación hidrográfica

    Get PDF
    El modelado y la simulación computacional de eventos naturales proveen una poderosa herramienta para comprender sus mecanismos y pronosticarlos. Estas herramientas son especialmente útiles cuando estos eventos se convierten en desastres naturales que amenazan la vida humana y la economía de los pueblos afectados. En particular, las inundaciones provocadas por el desborde de ríos es uno de los desastres naturales que se benefician ampliamente con el uso de programas computacionales que ayudan a pronosticar sus efectos. Las inundaciones son fenómenos naturales que pueden ocurrir a intervalos irregulares en cualquier riachuelo o río. El asentamiento de la población en llanuras de inundación es la causa principal de los daños producidos por las inundaciones. El estudio de los procesos hidrodinámicos en las aguas superficiales, como ríos, ha desempeñado un papel pionero en el desarrollo de modelos numéricos para su uso en la ingeniería hidráulica. Esto ha llevado a la producción de gran cantidad de software relativamente sofisticado aplicado a estudiar y simular fenómenos de traslación de ondas en cauces de ríos, de manera de poder predecir eventos de desborde e inundaciones. Aunque los modelos se construyan considerando la mayor cantidad posible de variables propias del sistema simulado existen fuentes de incertidumbre en los datos de entrada y en los parámetros propios del modelo, que aumentan el error de los datos de salida de la simulación. La mayoría de estos parámetros pueden estimarse a partir de datos de campo, por ejemplo, observaciones hidrometeorológicas, mapas de la topografía, tipos de suelo, uso del suelo, etc. Sin embargo, rara vez están disponibles datos de campo completos para apoyar plenamente la especificación de todos los parámetros. La incertidumbre debida a los valores de los parámetros de entrada, se debe a que no existe una manera de medirlos directamente y deben ser estimados o interpolados siendo muy difícil mantener actualizados sus valores durante el período de simulación. El motivo que impulsó el tema central de este trabajo fue proveer a este tipo de simulación de mayor certeza en sus resultados. El objetivo principal de la tesis es brindar una metodología para mejorar la calidad de la simulación de un modelo computacional de cauce de ríos, aplicando la técnica de optimización vía simulación; objetivo posible de alcanzar gracias a los aportes de las técnicas y métodos del cómputo de alto rendimiento. Este método devuelve como solución un conjunto de parámetros optimizados que mejora la predicción del simulador. La mejora lograda en la calidad del simulador es medida en términos del ajuste entre los datos de salida, o simulados, y los datos reales, u observados. El desarrollo de esta tesis requirió la selección de un modelo computacional de cauces. El modelo seleccionado fue el programa EZEIZA VI (Ezeiza), un modelo hidrodinámico desarrollado por el Instituto Nacional del Agua (INA) de la República Argentina, y el modelo del sistema físico del río Paraná cuyo comportamiento y evolución se simula con Ezeiza. El Río Paraná es de interés para este trabajo; pertenece a la Cuenca del Plata y recorre el área más poblada e industrializada de Sudamérica. Las conversaciones y reuniones con los investigadores del INA fueron decisivas para entender el funcionamiento del simulador Ezeiza y las características del sistema simulado. De esta manera fue posible elegir los parámetros críticos del modelo, como también sus posibles rangos de valores. Optimización vía Simulación (OvS) es un campo emergente que integra técnicas de optimización y análisis de la simulación, el cual se ha convertido en una poderosa técnica para el análisis y optimización de sistemas complejos. Mediante los aportes de la OvS, se implementa un metamodelo de simulación para encontrar el conjunto de parámetros de ajuste que optimiza la salida del simulador. El uso de un metamodelo se hace para facilitar la tarea de optimización, que implica encontrar la mejor configuración de parámetros de entrada, o variables controlables del sistema, con el n de optimizar la función objetivo, la cual es función de las salidas del modelo de simulación, en este caso el modelo Ezeiza. El método utiliza la salida del simulador, y otros datos propios de sistema físico simulado, para evaluar su función objetivo y en base a esta medida o índice de rendimiento, propone un nuevo conjunto de valores de los parámetros. El método de OvS aplicado a mejorar los resultados del simulador Ezeiza, es un metamodelo que utiliza una estrategia de OvS en dos etapas. Un metamodelo es un modelo empírico creado con datos generados por modelos computacionales, o sea son modelos de modelos. El método que se presenta se sitúa entre los métodos de búsquedas exhaustivas y las heurísticas propias de la optimización y es un metamodelo que utiliza una estrategia de OvS en dos etapas. La idea principal es la siguiente: En una primera etapa, mediante un proceso iterativo, se van obteniendo subregiones del espacio de búsqueda del problema que cumplan con su función objetivo. Esta etapa se basa en la estructura de vecindad del problema para reducir la región de posibles soluciones donde se hace la búsqueda, mediante un esquema Monte Carlo combinado con un método K-Means. Se obtienen conjuntos de regiones prometedoras, nombradas así desde el punto de vista de la posibilidad de contener la solución óptima, o alguna subóptima, cuyo tamaño es mucho más chico. Al finalizar, se implementa una segunda etapa de búsqueda exhaustiva, pero ahora sobre la región prometedora resultante, ya mucho más pequeña. A pesar de la reducción del espacio de búsqueda, ambas etapas implementan métodos computacionales que requieren un gran tiempo de ejecución y son posibles de llevar a la práctica gracias a los recursos de programación paralela y de cómputo de alto rendimiento. Con estos recursos se logran tiempos de ejecución aceptables, reduciendo considerablemente el tiempo computacional de cada etapa. El método de OvS en sus dos etapas es un método fácilmente paralelizable. El algoritmo principal debe evaluar la función objetivo con cada candidato solución antes de ingresarlo al método de optimización, el cual hace un análisis de los índices obtenidos para decidir si el método debe repetirse. El simulador se ejecuta con cada uno de los elementos seleccionados al azar del espacio de búsqueda por el método Monte Carlo, el cual es un espacio de 110.592 combinaciones en el primer caso de experimentación y de 19683 combinaciones en el segundo caso. Cada evaluación es independiente de las otras, por lo tanto estamos ante un problema altamente paralelizable en un cluster mediante un modelo de programación Master-Worker. La aplicación Master-Worker del método fue escrita en C++ con MPI. Se utilizó pthreads para ejecutar el conjunto de programas que conforman el simulador Ezeiza, que se utilizan como una caja negra durante todo el proceso. Este trabajo optimiza la predicción de Ezeiza en las estaciones de monitoreo ubicadas a lo largo del río Paraná. Para su comprobación, se implementaron dos casos de estudio del método utilizando datos reales en dos periodos de tiempo diferentes. Estos casos optimizan dos índices de rendimiento necesarios para encontrar el conjunto óptimo de parámetros. Estos índices son indicadores del rendimiento general de la simulación y dependen de los datos de salida (simulados) y de los datos observados (reales) en cada una de las 15 estaciones de monitoreo durante cada día del periodo simulado. Las funciones objetivos establecidas para la optimización están definidas por estos índices. Uno de ellos minimiza el apartamiento promedio entre ambos grupos de datos y en segundo lugar se considera una función multiobjetivo que minimiza estas diferencias y maximiza la cantidad de estaciones que mejoran. Los escenarios de simulación que resultaron del proceso de OvS son los que contienen los valores óptimos de sus parámetros de entrada. Estos conjuntos solución, o conjunto de variables de decisión optimizadas, junto con todos los datos de entrada de una simulación completa, constituyen los escenarios de simulación que sintonizan la predicción realizada con el simulador Ezeiza. Se logró una mejora en la predicción de Ezeiza entre el 10% y el 25% para el primer caso de estudio y comprobación del método y mejoras entre el 20% y el 40% para el segundo caso de experimentación. Estos porcentajes representan un promedio de 40cm a 60cm de altura del agua, y la importancia de estos valores radica en que pueden ser la diferencia entre la pérdida o no del ganado o de cubrir casas, al entrar el agua en las planicies de inundación afectadas. Estos escenarios optimizados mejoraron favorablemente la simulación de Ezeiza en las estaciones ubicadas en el tramo del bajo Paraná. Fue seleccionado este tramo para la optimización, pues es un tramo del río sensible para la toma de decisiones y los pronósticos. Esta zona tiene alto impacto en la región de la Cuenca del Plata, especialmente en su economía, debido a la alta cantidad de población que tiene instalada en sus planicies. No es posible pensar en un escenario de optimización de todo el sistema físico, como el que representa el río Paraná en sus 1900 km. Con 76 secciones en su cauce. En cada sección se deben definir los valores de sus parámetros ajustables. El espacio de búsqueda resultante de la combinación de estos parámetros toma una dimensión tan inmensa, que optimizar todo el sistema es una misión aun imposible de llevar a la práctica. Los resultados son alentadores y el principal aporte del trabajo fue proveer de una metodología que permitió calibrar y sintonizar un simulador, como Ezeiza, de manera automática. Esto es muy beneficioso para los ingenieros hidráulicos que deben hacer predicción con el simulador y no pueden contar con valores actualizados constantemente de los datos del río. Esta metodología es prometedora para ser utilizada en la sintonización automática de otros simuladores hidrológicos. Por otro lado, el uso del cómputo de alto rendimiento se potencia con el aporte del método de OvS, ya que se tiene una ganancia por la reducción en cantidad de simulaciones que ofrece la metodología al reducir significativamente el espacio de búsqueda de la solución, y la ganancia de la implementación en paralelo.Directores de la tesis: Emilio Luque Fadón (Universidad Autónoma de Barcelona) y Armando De Giusti (Universidad Nacional de La Plata).Facultad de Informátic

    Análisis del rendimiento de algoritmos paralelos de propósito general en GPGPU : Aplicación a un problema de mallado de elementos finitos

    Get PDF
    El objetivo de este trabajo es analizar el desarrollo, optimización y evaluación de algoritmos paralelos de propósito general cuya ejecución se implementa sobre la arquitectura de cómputo de alto rendimiento que ofrecen los multiprocesadores gráficos de las placas de video. Este tipo de arquitectura de cómputo, como las GPU de la placa de video NVIDIA, permite obtener mejoras significativas en el tiempo de procesamiento de aplicaciones no gráficas. Este objetivo es alcanzable con un uso eficiente de su modelo de memoria y de programación. En este trabajo se estudiará el rendimiento de un algoritmo de mallado de elementos finitos, cuya paralelización es adecuada para un modelo de programación paralela de memoria compartida. Este objetivo incluye determinar las técnicas de optimización del modelo de programación CUDA que hagan más eficiente el uso de los niveles de memoria de la GPU para esta aplicación y que permitan su escalado a unidades con mayor cantidad de multiprocesadores. El aporte de este trabajo es mostrar la ganancia obtenida con el uso de multiprocesadores gráficos al ejecutar aplicaciones paralelas de propósito general, que se caracterizan por proveer un alto paralelismo de datos. Como también exponer el potencial presente en las GPU, de eficiencia y escalabilidad, cuando se dan estas condiciones en la aplicación sobre la que se trabaja.Facultad de Informátic

    Análisis del rendimiento de algoritmos paralelos de propósito general en GPGPU : Aplicación a un problema de mallado de elementos finitos

    Get PDF
    El objetivo de este trabajo es analizar el desarrollo, optimización y evaluación de algoritmos paralelos de propósito general cuya ejecución se implementa sobre la arquitectura de cómputo de alto rendimiento que ofrecen los multiprocesadores gráficos de las placas de video. Este tipo de arquitectura de cómputo, como las GPU de la placa de video NVIDIA, permite obtener mejoras significativas en el tiempo de procesamiento de aplicaciones no gráficas. Este objetivo es alcanzable con un uso eficiente de su modelo de memoria y de programación. En este trabajo se estudiará el rendimiento de un algoritmo de mallado de elementos finitos, cuya paralelización es adecuada para un modelo de programación paralela de memoria compartida. Este objetivo incluye determinar las técnicas de optimización del modelo de programación CUDA que hagan más eficiente el uso de los niveles de memoria de la GPU para esta aplicación y que permitan su escalado a unidades con mayor cantidad de multiprocesadores. El aporte de este trabajo es mostrar la ganancia obtenida con el uso de multiprocesadores gráficos al ejecutar aplicaciones paralelas de propósito general, que se caracterizan por proveer un alto paralelismo de datos. Como también exponer el potencial presente en las GPU, de eficiencia y escalabilidad, cuando se dan estas condiciones en la aplicación sobre la que se trabaja.Facultad de Informátic

    Dynamic Data Driven approach to improve theperformance of a river simulation

    Get PDF
    In this research we incorporate the contributions of the dynamic data driven systems development that is based on the possibility of incorporating data obtained in real time into an executing application, in particular a simulation. This paper reports on the first phase of our research in which we have used this idea to enhance the simulation quality of a river flow simulator by dynamic data inputs during the computational execution. We had presented an optimization methodology of this simulator model in previous works but in this opportunity, we could handle those time periods when a sudden level change takes place inthe river and we could improve the forecasting prediction. These results are the path towards the development of an automatic calibration framework fed with real-time data.Instituto de Investigación en InformáticaInstituto de Investigación en Informátic

    Uso de GPUs en cómputo de propósito general : Aplicación a un método de mallado de elementos finitos

    Get PDF
    NVIDIA abrió la arquitectura de los procesadores gráficos de sus placas de video (GPUs) para ser utilizados en aplicaciones de propósito general y desarrolló el lenguaje de programación CUDA permitiendo a los programadores crear funciones con explícito paralelismo de datos, brindando una plataforma de cómputo de alto rendimiento y paralelismo a gran escala. Nuestro trabajo presenta la aplicación de las capacidades de cómputo paralelo provisto por las GPUs, como coprocesadores de la CPU, para mejorar el tiempo de ejecución de un método de mallado de elementos finitos creado por P. Persson y G. Strang para MATLAB. Dado que las GPUs poseen decenas de unidades de procesamiento, son adecuadas para el procesamiento de datos matriciales, siendo esto una ventaja para nuestro algoritmo. Desarrollamos una función que toma un conjunto de puntos provenientes de la discretización de un dominio sobre el cual se desea el mallado, mediante el método de Delaunay, y calcula el movimiento de cada punto según el método de Persson-Strang. Esta función forma parte de un proceso iterativo propio del método, cuyo objetivo es mejorar la calidad del mallado. Nuestro trabajo consigue mejoras en la ejecución de la función del 62% comparado con el tiempo de ejecución dentro de la función distmesh2d de MATLAB.Presentado en el X Workshop Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI

    Uso de GPUs en cómputo de propósito general : Aplicación a un método de mallado de elementos finitos

    Get PDF
    NVIDIA abrió la arquitectura de los procesadores gráficos de sus placas de video (GPUs) para ser utilizados en aplicaciones de propósito general y desarrolló el lenguaje de programación CUDA permitiendo a los programadores crear funciones con explícito paralelismo de datos, brindando una plataforma de cómputo de alto rendimiento y paralelismo a gran escala. Nuestro trabajo presenta la aplicación de las capacidades de cómputo paralelo provisto por las GPUs, como coprocesadores de la CPU, para mejorar el tiempo de ejecución de un método de mallado de elementos finitos creado por P. Persson y G. Strang para MATLAB. Dado que las GPUs poseen decenas de unidades de procesamiento, son adecuadas para el procesamiento de datos matriciales, siendo esto una ventaja para nuestro algoritmo. Desarrollamos una función que toma un conjunto de puntos provenientes de la discretización de un dominio sobre el cual se desea el mallado, mediante el método de Delaunay, y calcula el movimiento de cada punto según el método de Persson-Strang. Esta función forma parte de un proceso iterativo propio del método, cuyo objetivo es mejorar la calidad del mallado. Nuestro trabajo consigue mejoras en la ejecución de la función del 62% comparado con el tiempo de ejecución dentro de la función distmesh2d de MATLAB.Presentado en el X Workshop Procesamiento Distribuido y Paralelo (WPDP)Red de Universidades con Carreras en Informática (RedUNCI

    Modelización formal y verificación automática de sistemas de tiempo real

    Get PDF
    Los sistemas de tiempo-real son sistemas en los cuales el tiempo juega un rol fundamental. Ejemplos de estos sistemas son los controles automáticos de navegación de aviones, los protocolos de comunicación, los procesos industriales automatizados, cajeros automáticos, controladores de radar, etc. El carácter crítico, en más de un sentido, de esta clase de sistemas ha evidenciado la necesidad de proveer métodos formales para su especificación y posterior verificación. Además, su creciente complejidad y tamaño justifica el desarrollo de herramientas que ayuden a su concepción y que automaticen su verificación. El objetivo de este proyecto está vinculado al desarrollo de herramientas para la verificación automática de sistemas de tiempo-real. Utilizaremos como marco de nuestro trabajo la herramienta KRONOS [BDMOTY98] (en la que uno de los autores ha trabajado desde 1992) estudiando métodos que permitan ampliar sus funcionalidades y mejorando algorítmicamente las técnicas utilizadas hasta el presente.Eje: TeoríaRed de Universidades con Carreras en Informática (RedUNCI

    Modelización formal y verificación automática de sistemas de tiempo real

    Get PDF
    Los sistemas de tiempo-real son sistemas en los cuales el tiempo juega un rol fundamental. Ejemplos de estos sistemas son los controles automáticos de navegación de aviones, los protocolos de comunicación, los procesos industriales automatizados, cajeros automáticos, controladores de radar, etc. El carácter crítico, en más de un sentido, de esta clase de sistemas ha evidenciado la necesidad de proveer métodos formales para su especificación y posterior verificación. Además, su creciente complejidad y tamaño justifica el desarrollo de herramientas que ayuden a su concepción y que automaticen su verificación. El objetivo de este proyecto está vinculado al desarrollo de herramientas para la verificación automática de sistemas de tiempo-real. Utilizaremos como marco de nuestro trabajo la herramienta KRONOS [BDMOTY98] (en la que uno de los autores ha trabajado desde 1992) estudiando métodos que permitan ampliar sus funcionalidades y mejorando algorítmicamente las técnicas utilizadas hasta el presente.Eje: TeoríaRed de Universidades con Carreras en Informática (RedUNCI

    CPU + GPU: Un entorno de cómputo de alto rendimiento : Su aplicación a métodos de mallado de elementos finitos

    Get PDF
    NVIDIA abrió la arquitectura de los procesadores gráficos de sus placas de video (GPUs) para ser utilizados en aplicaciones de propósito general y desarrolló el lenguaje de programación CUDA permitiendo a los programadores crear funciones con explícito paralelismo de datos, brindando una plataforma de cómputo de alto rendimiento y paralelismo a gran escala. Este trabajo forma parte del proyecto ”Métodos numéricos para ecuaciones diferenciales y aplicaciones” que reúne investigadores de la Universidad de Buenos Aires y de la Universidad Nacional de General Sarmiento, y tiene como objetivo utilizar dicha arquitectura de cómputo paralelo para acelerar el tiempo de ejecución de un método de mallado de elementos finitos creado por P. Persson y G. Strang para MATLAB. Dado que los GPUs poseen decenas de unidades de procesamiento, son adecuadas para el procesamiento de datos en paralelo. Esto es una ventaja para el algoritmo seleccionado, el cual presenta un evidente paralelismo de datos.Eje: Procesamiento distribuido y paraleloRed de Universidades con Carreras en Informática (RedUNCI

    Efficiency analysis of a physical problem: different parallel computational approaches for a dynamical integrator evolution

    Get PDF
    A great challenge for scientists is to execute their computational applications efficiently. Nowadays, parallel programming has become a fundamental key to achieve this goal. High-performance computing provides a solution to exploit parallel architectures in order to get optimal performance. Both parallel programming model and the system architecture will maximize the benefits if both together are suitable to the inherent parallelism of the problem. We compared three parallelized versions of our algorithm when applied to the study of the heat transport phenomenon in a low dimensional system. We qualitatively analyze the obtained performance data based on the own characteristics of multicore architecture, shared memory and NVIDIA graphical multiprocesors related to the traditional programing models provided by MPI and OpenMP, and Cuda programming environment. We conclude that GPUs parallel computing architecture is the most suitable programing model to achieve a better performance of our algorithm. We obtained an improvement of 15X, quite good for a program whose efficiency is strongly degraded by an integration process that essentially must be carried out in a serial way due to the dependence of the data.WPDP- XIII Workshop procesamiento distribuido y paraleloRed de Universidades con Carreras en Informática (RedUNCI
    corecore